package com.ruoyi.workbench.service;

import com.ruoyi.workbench.domain.WbVisitLog;
import com.ruoyi.workbench.domain.WbWholeVisitLog;

import java.util.List;

/**
 * 拜访日志Service接口
 *
 * @author hanjiafeng
 * @date 2021-02-25
 */
public interface IWbVisitLogService {
    /**
     * 查询拜访日志
     *
     * @param id 拜访日志ID
     * @return 信息上报
     */
    WbVisitLog selectWbVisitLogById(Long id);

    /**
     * 查询拜访日志
     *
     * @param id 拜访日志ID
     * @return 信息上报
     */
    WbVisitLog selectWbWholeVisitLogById(Long id);

    /**
     * 查询拜访日志列表
     *
     * @param wbVisitLog 信息上报
     * @return 拜访日志集合
     */
    List<WbVisitLog> selectWbVisitLogList(WbVisitLog wbVisitLog);

    /**
     * 查询完全拜访日志
     *
     * @param wbWholeVisitLog wbWholeVisitLog
     * @param period          period
     * @param startTime       startTime
     * @param endTime         endTime
     * @return 拜访日志集合
     */
    List<WbWholeVisitLog> selectChannelWbWholeVisitLogList(WbWholeVisitLog wbWholeVisitLog, Integer period, String startTime, String endTime);
    /**
     * 查询快过期日志列表
     *
     * @param wbWholeVisitLog 信息上报
     * @param period          快过期时间
     * @param isContainPast   是否包含已经过期日志
     * @return 拜访日志集合
     */
    List<WbWholeVisitLog> selectChannelExpiringWbWholeVisitLogList(WbWholeVisitLog wbWholeVisitLog, Integer period, Boolean isContainPast);

    /**
     * 查询完全拜访日志
     *
     * @param wbWholeVisitLog wbWholeVisitLog
     * @param period          period
     * @param startTime       startTime
     * @param endTime         endTime
     * @return 拜访日志集合
     */
    List<WbWholeVisitLog> selectWbWholeVisitLogList(WbWholeVisitLog wbWholeVisitLog, Integer period, String startTime, String endTime);

    /**
     * 查询快过期日志列表
     *
     * @param wbWholeVisitLog 信息上报
     * @param period          快过期时间
     * @param isContainPast   是否包含已经过期日志
     * @return 拜访日志集合
     */
    List<WbWholeVisitLog> selectExpiringWbWholeVisitLogList(WbWholeVisitLog wbWholeVisitLog, Integer period, Boolean isContainPast);

    /**
     * 新增拜访日志
     *
     * @param wbVisitLog 信息上报
     * @return 结果
     */
    int insertWbVisitLog(WbVisitLog wbVisitLog);

    /**
     * 修改拜访日志
     *
     * @param wbVisitLog 信息上报
     * @return 结果
     */
    int updateWbVisitLog(WbVisitLog wbVisitLog);

    /**
     * 批量删除拜访日志
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteWbVisitLogByIds(String ids);

    /**
     * 删除拜访日志信息
     *
     * @param id 拜访日志ID
     * @return 结果
     */
    int deleteWbVisitLogById(Long id);

    /**
     * 检查号码是否已经在currentPhoneNumber或者transformedPhone中存在
     *
     * @param id          记录id
     * @param type        类型,0:只查currentPhoneNumber,1:currentPhoneNumber和transformedPhone都查
     * @param phoneNumber 待查号码
     * @return 是否存在
     */
    String checkPhoneNumberUnique(Long id, String type, String phoneNumber);
}
